import constant from '@/config/constant'

/**
 * 常量状态格式化
 * @param status 值
 * @param type  常量类型
 * @param color  是否带色彩
 * @param defaultVal  默认值
 * @returns {string|*}
 */
export function constantFormatHtml (status = '', type = '', color = '', defaultVal = '') {
  if (status !== '' && type !== '') {
    let value = constant[type][status] ? constant[type][status] : false
    if (color && constant['Color' + type]) {
      return value ? `<i class="fs-normal" style="color: ${constant['Color' + type][status]}">${value}</i>` : defaultVal
    }
    return value ? value : defaultVal
  }
  return ''
}


/**
 * 数字前置补零
 * @param value 值
 * @param length 位数
 * @returns {string}
 */
export function digit(value, length = 2) {
  if (
    typeof value === 'undefined' ||
    value === null ||
    String(value).length >= length
  ) {
    return value;
  }
  return (Array(length).join('0') + value).slice(-length);
}

/**
 * 时间格式化
 * @param time 时间
 * @param format 格式
 * @returns {string}
 */
export function toDateString(time, format = 'yyyy-MM-dd HH:mm:ss') {
  if (!time) {
    return '';
  }
  if (typeof time === 'number' && String(time).length === 10) {
    time = time * 1000; // 10位时间戳处理
  }
  const date = new Date(time);
  const ymd = [
    digit(date.getFullYear(), 4),
    digit(date.getMonth() + 1),
    digit(date.getDate())
  ];
  const hms = [
    digit(date.getHours()),
    digit(date.getMinutes()),
    digit(date.getSeconds())
  ];
  return format
    .replace(/yyyy/g, ymd[0])
    .replace(/MM/g, ymd[1])
    .replace(/dd/g, ymd[2])
    .replace(/HH/g, hms[0])
    .replace(/mm/g, hms[1])
    .replace(/ss/g, hms[2]);
}

